home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / PARI / PARI1 / pari / h / genport < prev   
Text File  |  1991-11-28  |  5KB  |  98 lines

  1. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  2. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  3. /*                                                                 */
  4. /*                        Fichier Include PARI                     */
  5. /*                                                                 */
  6. /*                 declarations specifiques portables              */
  7. /*                                                                 */
  8. /*                        copyright  Babecool                      */
  9. /*                                                                 */
  10. /*                                                                 */
  11. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  12. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  13.  
  14. /* mp.c */
  15.  
  16. #define signe(x)          (((GEN)(x))[1]>>24)
  17. #define setsigne(x,s)     (((GEN)(x))[1]=(((GEN)(x))[1]&0xffffff)+(s<<24))
  18. #define typ(x)            (((unsigned long)((GEN)(x))[0])>>24)
  19. #define settyp(x,s)       (((GEN)(x))[0]=(((GEN)(x))[0]&0xffffff)+(s<<24))
  20. #define pere(x)           ((unsigned long)(((GEN)(x))[0]&0xffffff)>>16)
  21. #define setpere(x,s)      (((GEN)(x))[0]=(((GEN)(x))[0]&0xff00ffff)+(s<<16))
  22. #define lg(x)             (((GEN)(x))[0]&0xffff)
  23. #define setlg(x,s)        (((GEN)(x))[0]=(((GEN)(x))[0]&0xffff0000)+s)
  24. #define lgef(x)           (((GEN)(x))[1]&0xffff)
  25. #define setlgef(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xffff0000)+s)
  26. #define expo(x)           ((((GEN)(x))[1]&0xffffff)-0x800000)
  27. #define setexpo(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xff000000)+(0x800000+s))
  28. #define valp(x)           ((((GEN)(x))[1]&0xffff)-0x8000)
  29. #define setvalp(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xffff0000)+(0x8000+s))
  30. #define precp(x)          (((unsigned long)((GEN)(x))[1])>>16)
  31. #define setprecp(x,s)     (((GEN)(x))[1]=(((GEN)(x))[1]&0xffff)+(s<<16))
  32. #define varn(x)           ((((GEN)(x))[1]&0xff0000)>>16)
  33. #define setvarn(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xff00ffff)+(s<<16))
  34. #define mant(x,i)         ((((GEN)(x))[1]&0xff000000)?((GEN)(x))[i+1]:0)
  35. #define setmant(x,i,s)    (((GEN)(x))[i+1]=s)
  36. #define affrs(x,s)        (err(affer4))
  37. #define affri(x,y)        (err(affer5))
  38. #define negs(s)           (stoi(-s))
  39. #define mpshift(x,s)      ((typ(x)==1)?shifti(x,s):shiftr(x,s))
  40. #define cmpis(x,y)        (-cmpsi(y,x))
  41. #define cmprs(x,y)        (-cmpsr(y,x))
  42. #define cmpri(x,y)        (-cmpir(y,x))
  43. #define subis(x,y)        (addsi(-y,x))
  44. #define subrs(x,y)        (addsr(-y,x))
  45.  
  46. #define divii(a,b)        (dvmdii(a,b,0))
  47. #define resii(a,b)        (dvmdii(a,b,-1))
  48.  
  49. #define affsz(s,x)        ((typ(x)==1)?affsi(s,x):affsr(s,x))
  50. #define mpneg(x)          ((typ(x)==1)?negi(x):negr(x))
  51. #define mpabs(x)          ((typ(x)==1)?absi(x):absr(x))
  52. #define mpinvz(x,y)       ((typ(x)==1)?divsiz(1,x,y):divsrz(1,x,y))
  53.  
  54. #define mpnegz(x,y)       ((typ(x)==1)?gop1z(negi,x,y):gop1z(negr,x,y))
  55. #define mpabsz(x,y)       ((typ(x)==1)?gop1z(absi,x,y):gop1z(absr,x,y))
  56. #define mpshiftz(x,s,y)   ((typ(x)==1)?gops2gsz(shifti,x,s,y):gops2gsz(shiftr,x,s,y))
  57. #define mptruncz(x,y)     (gop1z(mptrunc,x,y))
  58. #define mpentz(x,y)       (gop1z(mpent,x,y))
  59. #define mpaddz(x,y,z)     (gop2z(mpadd,x,y,z))
  60. #define addsiz(s,y,z)     (gops2sgz(addsi,s,y,z))
  61. #define addsrz(s,y,z)     (gops2sgz(addsr,s,y,z))
  62. #define addiiz(x,y,z)     (gop2z(addii,x,y,z))
  63. #define addirz(x,y,z)     (gop2z(addir,x,y,z))
  64. #define addriz(x,y,z)     (gop2z(addir,y,x,z))
  65. #define addrrz(x,y,z)     (gop2z(addrr,x,y,z))
  66. #define mpsubz(x,y,z)     (gop2z(mpsub,x,y,z))
  67. #define subsiz(s,y,z)     (gops2sgz(subsi,s,y,z))
  68. #define subsrz(s,y,z)     (gops2sgz(subsr,s,y,z))
  69. #define subisz(y,s,z)     (gops2sgz(addsi,-s,y,z))
  70. #define subrsz(y,s,z)     (gops2sgz(addsr,-s,y,z))
  71. #define subiiz(x,y,z)     (gop2z(subii,x,y,z))
  72. #define subirz(x,y,z)     (gop2z(subir,x,y,z))
  73. #define subriz(x,y,z)     (gop2z(subri,x,y,z))
  74. #define subrrz(x,y,z)     (gop2z(subrr,x,y,z))
  75. #define mpmulz(x,y,z)     (gop2z(mpmul,x,y,z))
  76. #define mulsiz(s,y,z)     (gops2sgz(mulsi,s,y,z))
  77. #define mulsrz(s,y,z)     (gops2sgz(mulsr,s,y,z))
  78. #define muliiz(x,y,z)     (gop2z(mulii,x,y,z))
  79. #define mulirz(x,y,z)     (gop2z(mulir,x,y,z))
  80. #define mulriz(x,y,z)     (gop2z(mulir,y,x,z))
  81. #define mulrrz(x,y,z)     (gop2z(mulrr,x,y,z))
  82. #define mpinvsr(s,y)      (divssz(1,s,y))
  83. #define mpinvir(x,y)      (divsiz(1,x,y))
  84. #define mpinvrr(x,y)      (divsrz(1,x,y))
  85. #define mpdvmdz(x,y,z,t)  (dvmdiiz(x,y,z,t))
  86. #define modssz(s,y,z)     (gops2ssz(modss,s,y,z))
  87. #define modsiz(s,y,z)     (gops2sgz(modsi,s,y,z))
  88. #define modisz(y,s,z)     (gops2gsz(modis,y,s,z))
  89. #define ressiz(s,y,z)     (gops2sgz(ressi,s,y,z))
  90. #define resisz(y,s,z)     (gops2gsz(resis,y,s,z))
  91. #define resssz(s,y,z)     (gops2ssz(resss,s,y,z))
  92. #define divirz(x,y,z)     (gop2z(divir,x,y,z))
  93. #define divriz(x,y,z)     (gop2z(divri,x,y,z))
  94. #define divsrz(s,y,z)     (gops2sgz(divsr,s,y,z))
  95. #define divrsz(y,s,z)     (gops2gsz(divrs,y,s,z))
  96.  
  97.  
  98.